package com.probox.common.entity.service.order;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.probox.customer.api.domain.CustomerGroupDefinitionQuery;
import com.probox.common.entity.domain.order.OrderInfoParent;
import com.probox.product.api.domain.ProductOptVo;

/**
 * 订单父Service接口
 *
 * @author hds
 * @date 2021-05-27
 */
public interface IOrderInfoParentService extends IService<OrderInfoParent> {


    /**
     * 查询订单父
     *
     * @param parentUid 订单父ID
     * @return 订单父
     */
    public OrderInfoParent selectOrderInfoParentById(Long parentUid);

    /**
     * 根据订单号查询订单信息
     *
     * @param parentOrderNo
     * @return
     */
    public OrderInfoParent getOrderInfo(String parentOrderNo);


    /**
     * 查询订单父列表
     *
     * @param orderInfoParent 订单父
     * @return 订单父集合
     */
    public List<OrderInfoParent> queryList(OrderInfoParent orderInfoParent);


    /**
     * 新增订单父
     *
     * @param orderInfoParent 订单父
     * @return 结果
     */
    public boolean insertOrderInfoParent(OrderInfoParent orderInfoParent);

    /**
     * 修改订单父
     *
     * @param orderInfoParent 订单父
     * @return 结果
     */
    public boolean updateOrderInfoParent(OrderInfoParent orderInfoParent);

    /**
     * 批量删除订单父
     *
     * @param parentUids 需要删除的订单父ID
     * @return 结果
     */
    public boolean deleteOrderInfoParentByIds(Long[] parentUids);

    /**
     * 根据支付单号查询
     * @param parentOrderNo
     */
    OrderInfoParent getParent(String parentOrderNo);

    boolean updatePayStatus(String parentOrderNo);

    /**
     * 有效购买次数
     * @param query
     * @return
     */
    List<ProductOptVo> getOptCount(CustomerGroupDefinitionQuery query);
}
